//package com.yiwei.zhh.api.requestInfo;
//
//import com.yiwei.zhh.api.Api;
//import com.yiwei.zhh.api.bean.CodeBean;
//import com.yiwei.zhh.api.bean.InitAppBean;
//import com.yiwei.zhh.api.bean.LoginBean;
//import com.yiwei.zhh.api.bean.RegisterBean;
//import com.yiwei.zhh.api.callback.RegisterContract;
//import com.yiwei.zhh.constant.Const;
//import com.yiwei.zhh.model.InitAppModel;
//import com.yiwei.zhh.util.Network;
//import com.yiwei.zhh.util.PackageUtil;
//import com.yiwei.zhh.util.PreferenceUtils;
//import com.yiwei.zhh.util.RBInfo;
//import com.yiwei.zhh.util.RxLifeUtil;
//import com.yiwei.zhh.util.ToastUtil;
//
//import io.reactivex.Observable;
//import io.reactivex.ObservableSource;
//import io.reactivex.functions.Function;
//
///**
// * Created by Administrator on 2017/5/14.
// */
//
//public class RegisterRequest extends BaseRequest<RegisterContract.View> implements RegisterContract.Presenter<RegisterContract.View> {
//
//    public static RegisterRequest create() {
//        return new RegisterRequest();
//    }
//
//
//    @Override
//    public void register(String account, String verifyCode, String password, String email) {
//        if (!Network.checkNetwork(BaseContext)) {
//            ToastUtil.makeText(BaseContext, networkFail).show();
//            return;
//        }
//        mView.onRequestStart();
//        RegisterBean bean = new RegisterBean();
//        bean.account = account;
//        bean.password = password;
//        bean.verify_code = verifyCode;
//        bean.email = email;
//        Api.api_service.getRegisterInfo(bean).compose(RxLifeUtil.checkOn(BaseContext)).
//                doFinally(() -> {
//                    try {
//                        mView.complete();
//                    } catch (NullPointerException e) {
//
//                    }
//                }).
//                subscribe(result -> {
//                    mView.registerSuccess(result);
//                });
//    }
//
//    @Override
//    public void login(String account, String password) {
//        if (!Network.checkNetwork(BaseContext)) {
//            ToastUtil.makeText(BaseContext, networkFail).show();
//            return;
//        }
//        mView.onRequestStart();
//        LoginBean bean = new LoginBean();
//        bean.account = account;
//        bean.password = password;
//        Api.api_service.getLoginInfo(bean).compose(RxLifeUtil.checkOn(BaseContext)).
//                doFinally(() -> {
//                    try {
//                        mView.complete();
//                    } catch (NullPointerException e) {
//
//                    }
//                }).
//                subscribe(result -> {
//                    mView.loginSuccess(result);
//                });
//    }
//
//    @Override
//    public void getCode(String type, String mobile) {
//        if (!Network.checkNetwork(BaseContext)) {
//            ToastUtil.makeText(BaseContext, networkFail).show();
//            return;
//        }
//        mView.onRequestStart();
//        CodeBean bean = new CodeBean();
//        bean.mobile = mobile;
//        bean.type = type;
//        Api.api_service.getCode(bean).compose(RxLifeUtil.NocheckOn(BaseContext)).
//                doFinally(() -> {
//                    try {
//                        mView.complete();
//
//                    } catch (NullPointerException e) {
//
//                    }
//
//                }).
//                subscribe(result -> {
//                    if (result.getStatus() == 1) {
//                        mView.getCodeSuccess(result);
//                    } else {
//                        ToastUtil.makeText(BaseContext, result.getMsg()).show();
//                    }
//                });
//    }
//
//    @Override
//    public void initApp() {
//        if (!Network.checkNetwork(BaseContext)) {
//            ToastUtil.makeText(BaseContext, networkFail).show();
//            return;
//        }
//        mView.onRequestStart();
//        InitAppBean bean = new InitAppBean();
//        bean.client_type = Const.CLIENT_TYPE;
//        bean.device_id = RBInfo.getInstance().getUniquePsuedoID();
//        bean.user_agent = RBInfo.getInstance().getUserAgent();
//        bean.os = Const.DevType.ANDROID;
//        bean.os_version = RBInfo.getInstance().getOSVersion();
//
//        bean.browser = "";
//        bean.browser_version = "";
//        bean.mobile_brand = RBInfo.getInstance().getBrand();
//        bean.mobile_model = RBInfo.getInstance().getModel();
//        bean.app_version = PackageUtil.getVersionName(BaseContext);
//        double lat = PreferenceUtils.getDouble(BaseContext.getApplicationContext(), Const.KEY.LAT, -1);
//        double lng = PreferenceUtils.getDouble(BaseContext.getApplicationContext(), Const.KEY.LNG, -1);
//        if (lat > 0 && lng > 0) {
//            bean.lat = lat;
//            bean.lang = lng;
//        }
//
//
//        Api.api_service.getInitInfo(bean).compose(RxLifeUtil.NoErrorOn(BaseContext))
//
//                .doOnError(throwable -> {
//
//                    mView.showError();
//                })
//                .onErrorResumeNext(new Function<Throwable, ObservableSource<? extends InitAppModel>>() {
//                    @Override
//                    public ObservableSource<? extends InitAppModel> apply(Throwable throwable) throws Exception {
//                        throwable.printStackTrace();
//                        return Observable.empty();
//                    }
//                }).
//                subscribe(result -> {
//                    mView.initSuccess(result);
//                });
//    }
//}
